package anjos.bean;

import anjos.modelo.Anjo;
import anjos.rn.AnjoRN;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class AnjoBean {

    private Anjo anjo;
    private AnjoRN anjoRN = new AnjoRN();
    private List<Anjo> anjos;
    private boolean renderLista;

    public String getTitulo() {
        iniciarBean();

        return "Cadastro - Anjos";
    }

    public void iniciarBean() {
        anjos = anjoRN.obterTodos();
        renderLista = true;
    }

    public void novo() {
        if (anjo == null) {
            anjo = anjoRN.novo();
        }
        renderLista = false;
    }

    public void voltar() {
        anjo = null;
        renderLista = true;
    }

    public void salvar() {
        if (anjoRN.salvar(anjo)) {
            BeanUtil.criarMensagemDeInformacao("Anjo Salvo", " O Anjo: " + anjo.getNome() + " Foi salvo na lista");
            return;
        }

        BeanUtil.criarMensagemDeErro("Erro ao tentar slvar o anjo.", "");
    }

    public void excluir() {
        if (anjoRN.remover(anjo)) {
            BeanUtil.criarMensagemDeInformacao("Anjo Removido da Lista", "O Anjo: " + anjo.getNome() + " foi removido da lista");
            return;
        }
        BeanUtil.criarMensagemDeErro("O Anjo não pode ser excluido da Lista", "Erro ao excluir Anjo");
    }

//    **************************Gets e Sets*************************************
    public AnjoBean() {
    }

    public Anjo getAnjo() {
        return anjo;
    }

    public void setAnjo(Anjo anjo) {
        this.anjo = anjo;
    }

    public AnjoRN getAnjoRN() {
        return anjoRN;
    }

    public void setAnjoRN(AnjoRN anjoRN) {
        this.anjoRN = anjoRN;
    }

    public List<Anjo> getAnjos() {
        if (anjos == null) {
            anjos = anjoRN.obterTodos();
        }
        return anjos;
    }

    public void setAnjos(List<Anjo> anjos) {
        this.anjos = anjos;
    }

    /**
     * @return the renderLista
     */
    public boolean isRenderLista() {
        return renderLista;
    }

    /**
     * @param renderLista the renderLista to set
     */
    public void setRenderLista(boolean renderLista) {
        this.renderLista = renderLista;
    }
}
